Events (ইভেন্টস) হল ইউজার ইন্টারঅ্যাকশনের প্রতি অ্যাপ্লিকেশন প্রতিক্রিয়া জানানোর পদ্ধতি। ExtJS একটি ইভেন্ট-ড্রিভেন ফ্রেমওয়ার্ক, যেখানে বিভিন্ন ইভেন্ট নির্দিষ্ট কম্পোনেন্ট বা UI উপাদানগুলোর সাথে সম্পর্কিত থাকে। যেমন: বাটন ক্লিক করা, ফর্ম সাবমিট করা, মাউসের হোভার করা ইত্যাদি। ExtJS এর ইভেন্ট সিস্টেম আপনাকে এই ধরনের ইউজার ইন্টারঅ্যাকশন সহজেই হ্যান্ডেল করতে সাহায্য করে।
ইভেন্টস হল ইউজারের অ্যাপ্লিকেশন সঙ্গে ইন্টারঅ্যাকশন করার কাজগুলো, যেমন ক্লিক, হোভার, কীবোর্ড ইনপুট, ড্র্যাগ-এন্ড-ড্রপ ইত্যাদি। এই ধরনের ইভেন্ট গুলি সাধারণত ইউজারের একটি অ্যাকশন (যেমন, বাটন ক্লিক, মাউসের হোভার) বা সিস্টেমের পরিবর্তনের মাধ্যমে তৈরি হয়। ExtJS এই ইভেন্টগুলিকে ইভেন্ট হ্যান্ডলার বা ইভেন্ট লিসেনার এর মাধ্যমে হ্যান্ডল করতে সহায়ক করে।
ExtJS তে ইভেন্ট হ্যান্ডল করার দুটি প্রধান পদ্ধতি রয়েছে:
listeners
কনফিগারেশন:listeners
কনফিগারেশন ব্যবহার করে ইভেন্ট হ্যান্ডল করা যায়। এটি ইভেন্টগুলোকে ম্যানেজ করার জন্য সাধারণত ব্যবহার করা হয়।addListener
মেথড:addListener
মেথড ব্যবহার করে ইভেন্টের জন্য লিসেনার যোগ করা যায়।listeners
কনফিগারেশনlisteners
কনফিগারেশন একটি কম্পোনেন্টের জন্য বিভিন্ন ইভেন্ট হ্যান্ডল করার সহজ পদ্ধতি। এটি সাধারণত কম্পোনেন্টের কনফিগারেশনের অংশ হিসেবে ব্যবহৃত হয়।
উদাহরণ:
Ext.create('Ext.Button', {
text: 'Click Me',
renderTo: Ext.getBody(),
listeners: {
click: function() {
alert('Button clicked!');
}
}
});
এখানে, click
ইভেন্টটি হ্যান্ডল করা হয়েছে। যখন বাটনে ক্লিক করা হবে, তখন একটি এলার্ট দেখানো হবে।
addListener
মেথডaddListener
মেথড ব্যবহার করে নির্দিষ্ট ইভেন্টে লিসেনার যোগ করা হয়। এটি আপনাকে কোডের যেকোনো স্থানে ইভেন্ট হ্যান্ডল করার সুবিধা দেয়।
উদাহরণ:
var button = Ext.create('Ext.Button', {
text: 'Click Me',
renderTo: Ext.getBody()
});
button.addListener('click', function() {
alert('Button clicked using addListener!');
});
এখানে, addListener
মেথড ব্যবহার করে click
ইভেন্ট হ্যান্ডল করা হয়েছে।
click
:
বাটন, ট্যাব, অথবা যেকোনো কম্পোনেন্টে ক্লিক করার ইভেন্ট।
উদাহরণ:
listeners: {
click: function() {
alert('Button clicked!');
}
}
change
:
ফর্ম ফিল্ডের মান পরিবর্তিত হলে ইভেন্ট।
উদাহরণ:
listeners: {
change: function(field, newValue, oldValue) {
console.log('Field value changed from ' + oldValue + ' to ' + newValue);
}
}
mouseover
:
মাউস একটি কম্পোনেন্টের উপর গেলে ইভেন্ট।
উদাহরণ:
listeners: {
mouseover: function() {
console.log('Mouse is over the element');
}
}
keydown
এবং keyup
:
কীবোর্ডে চাপ দেওয়া বা ছেড়ে দেওয়া ইভেন্ট।
উদাহরণ:
listeners: {
keydown: function(field, e) {
console.log('Key pressed: ' + e.getKey());
}
}
প্রতিটি ইভেন্টের সাথে কিছু গুরুত্বপূর্ণ প্যারামিটার পাওয়া যায়:
e
: ইভেন্ট অবজেক্ট যা ইভেন্ট সম্পর্কিত তথ্য ধারণ করে (যেমন মাউস পজিশন, কী কোড ইত্যাদি)।target
: যে এলিমেন্টে ইভেন্ট ঘটেছে।type
: ইভেন্টের ধরন (যেমন click
, keydown
ইত্যাদি)।ইভেন্ট ডেলিগেশন হল একাধিক এলিমেন্টে একই ইভেন্ট হ্যান্ডল করার একটি পদ্ধতি। এটি সাধারণত ডাইনামিক কম্পোনেন্টের জন্য ব্যবহৃত হয়, যেখানে আপনি একটি প্যারেন্ট কম্পোনেন্টে ইভেন্ট হ্যান্ডলার যুক্ত করেন এবং ইভেন্টটি তার মধ্যে থাকা চাইল্ড এলিমেন্টগুলির উপর প্রয়োগ হয়।
উদাহরণ:
Ext.create('Ext.panel.Panel', {
title: 'Event Delegation Example',
renderTo: Ext.getBody(),
html: '<button class="my-btn">Click Me</button>',
listeners: {
click: function(e, target) {
if (target.className === 'my-btn') {
alert('Button clicked inside panel');
}
}
}
});
এখানে, প্যানেলটির মধ্যে থাকা বাটন ক্লিক করার জন্য ইভেন্ট ডেলিগেশন ব্যবহার করা হয়েছে।
listeners
কনফিগারেশন এবং addListener
মেথড ব্যবহৃত হয়।এটি ExtJS অ্যাপ্লিকেশন ডেভেলপমেন্টের একটি গুরুত্বপূর্ণ অংশ, যা ইউজারের ইন্টারঅ্যাকশন এর উপর ভিত্তি করে অ্যাপ্লিকেশন প্রতিক্রিয়া জানায়।
Read more